using System;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 语言数据传输对象
    /// 用于多语言管理的数据传输
    /// </summary>
    public class LanguageDto
    {
        /// <summary>
        /// 语言ID
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 语言名称
        /// </summary>
        public string Name { get; set; } = string.Empty;
        
        /// <summary>
        /// 语言本地化名称
        /// </summary>
        public string NativeName { get; set; } = string.Empty;
        
        /// <summary>
        /// 语言代码 (如: zh-CN, en-US)
        /// </summary>
        public string Code { get; set; } = string.Empty;
        
        /// <summary>
        /// ISO语言代码 (如: zh, en)
        /// </summary>
        public string IsoCode { get; set; } = string.Empty;
        
        /// <summary>
        /// 国家代码 (如: CN, US)
        /// </summary>
        public string? CountryCode { get; set; }
        
        /// <summary>
        /// 国旗图标URL
        /// </summary>
        public string? FlagIcon { get; set; }
        
        /// <summary>
        /// 文字方向 (ltr, rtl)
        /// </summary>
        public string Direction { get; set; } = "ltr";
        
        /// <summary>
        /// 字符编码
        /// </summary>
        public string Encoding { get; set; } = "UTF-8";
        
        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnabled { get; set; } = true;
        
        /// <summary>
        /// 是否为默认语言
        /// </summary>
        public bool IsDefault { get; set; } = false;
        
        /// <summary>
        /// 是否在前端显示
        /// </summary>
        public bool ShowInFrontend { get; set; } = true;
        
        /// <summary>
        /// 排序权重
        /// </summary>
        public int SortWeight { get; set; } = 0;
        
        /// <summary>
        /// 翻译完成度百分比
        /// </summary>
        public decimal TranslationProgress { get; set; } = 0;
        
        /// <summary>
        /// 总翻译条目数
        /// </summary>
        public int TotalTranslations { get; set; } = 0;
        
        /// <summary>
        /// 已完成翻译数
        /// </summary>
        public int CompletedTranslations { get; set; } = 0;
        
        /// <summary>
        /// 待翻译数
        /// </summary>
        public int PendingTranslations { get; set; } = 0;
        
        /// <summary>
        /// 日期时间格式
        /// </summary>
        public string? DateTimeFormat { get; set; }
        
        /// <summary>
        /// 短日期格式
        /// </summary>
        public string? ShortDateFormat { get; set; }
        
        /// <summary>
        /// 时间格式
        /// </summary>
        public string? TimeFormat { get; set; }
        
        /// <summary>
        /// 数字格式
        /// </summary>
        public string? NumberFormat { get; set; }
        
        /// <summary>
        /// 货币格式
        /// </summary>
        public string? CurrencyFormat { get; set; }
        
        /// <summary>
        /// 货币符号
        /// </summary>
        public string? CurrencySymbol { get; set; }
        
        /// <summary>
        /// 文化信息配置 (JSON格式)
        /// </summary>
        public string? CultureConfig { get; set; }
        
        /// <summary>
        /// SEO标题
        /// </summary>
        public string? SeoTitle { get; set; }
        
        /// <summary>
        /// SEO关键词
        /// </summary>
        public string? SeoKeywords { get; set; }
        
        /// <summary>
        /// SEO描述
        /// </summary>
        public string? SeoDescription { get; set; }
        
        /// <summary>
        /// 自定义标签 (JSON格式)
        /// </summary>
        public string? Tags { get; set; }
        
        /// <summary>
        /// 版本号
        /// </summary>
        public string Version { get; set; } = "1.0.0";
        
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; } = "Active";
        
        /// <summary>
        /// 创建者ID
        /// </summary>
        public long? CreatedById { get; set; }
        
        /// <summary>
        /// 创建者姓名
        /// </summary>
        public string? CreatedByName { get; set; }
        
        /// <summary>
        /// 更新者ID
        /// </summary>
        public long? UpdatedById { get; set; }
        
        /// <summary>
        /// 更新者姓名
        /// </summary>
        public string? UpdatedByName { get; set; }
        
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; }
        
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdatedAt { get; set; }
        
        /// <summary>
        /// 最后使用时间
        /// </summary>
        public DateTime? LastUsedAt { get; set; }
        
        /// <summary>
        /// 扩展属性 (JSON格式)
        /// </summary>
        public string? ExtendedProperties { get; set; }
    }
}
